package com.jwsoft.manager.core.dao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jwsoft.manager.common.vo.bigScreen.analysisXq.StuEnrollInVO;
import com.jwsoft.manager.common.vo.bigScreen.analysisXq.StuEnrollXzjdpmVO;
import com.jwsoft.manager.common.vo.dataStatistics.enroll.*;
import com.jwsoft.manager.common.vo.eduStudentEnroll.EduStudentEnrollQueryVO;
import com.jwsoft.manager.common.vo.eduStudentEnroll.EduStudentEnrollVO;
import com.jwsoft.manager.core.dao.model.EduStudentEnroll;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 服务类
 *
 * @author wangtao
 * @since 2022-12-05
 */
public interface DyEduStudentEnrollService extends IService<EduStudentEnroll> {
    /**
     * 可同时报民办和公办
     * */
    List<EduStudentEnrollVO> getYwApplyList(EduStudentEnrollQueryVO vo);
    /**
     * 民办公办一起报名，一次只能报一所
     * */
    List<EduStudentEnrollVO> getYwApplyListYq(EduStudentEnrollQueryVO vo);
    List<StuEnrollXzjdpmVO> getStuEnrollXzjdpmVO(StuEnrollInVO vo);
    String queryMaxApplyId(@Param("applyId") String applyId, @Param("schoolId")String schoolId, @Param("year")Integer year);

    List<EduStudentEnrollVO> getEnrollLotteryList(EduStudentEnrollQueryVO vo);

    /**
     * 获取统筹区内报名过但未被录取的人员清单
     **/
    List<NoEnrollStudentVO> queryNoEnrollStudent(EnrollStudentQueryVO vo);


    List<EduStudentEnroll> queryEnrollStudentNotInClassStudent(Integer year, String schoolId, Integer queryMaxSize, String enrollStatus);

    Long getBackCnt(Integer year, String idcard);


    List<EnrollStatisticsVO> enrollStatistics(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> getauthNoList(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> enrollStatisticsImitate(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> getauthNoListImitate(EnrollStudentQueryVO vo);


    List<NoAssociatedAddressVO> noAssociatedAddress(EnrollStudentQueryVO vo);

    List<SameAddressSchoolVO> sameAddressSchool(EnrollStudentQueryVO vo);

    List<SameAddressSchoolDetailVO> sameAddressSchoolDetail(EnrollStudentQueryVO vo);

    // 学校查询同学段学校关联相同地址详情
    List<SameAddressSchoolDetailVO> sameAddressSchoolDetailSchool(EnrollStudentQueryVO vo);


    List<ServerRelationNoSchoolRelataionVO> serverRelationButNoAssociatedAddress(EnrollStudentQueryVO vo);

    List<EnrollStatisticsVO> allKindStatistic(EnrollStudentQueryVO vo);

    List<AuthNoAllKindVO> getauthNoAllKindList(EnrollStudentQueryVO vo);

    List<SameAddressSchoolDetailVO> sameAddressSchoolStreet(EnrollStudentQueryVO vo);

    List<SameAddressSchoolDetailVO> getEduAddressSchoolDifferentStreet(EnrollStudentQueryVO vo);

    List<SameAddressSchoolDetailVO> sameAddressSchoolStreetSchool(EnrollStudentQueryVO vo);
}
